Developer Documentation

QuickTime 4 API Documentation

Inside Macintosh: More Macintosh Toolbox

Previous | Chapter Top | Chapter Contents | Next |

Component Identifiers and Component Instances

In general, when using Component Manager routines, your application must specify the particular component using either a component identifier or component instance. The Component Manager identifies each component by a component identifier. The Component Manager identifies each instance of a component by a component instance. Thus, when your application searches for a component with a particular type and subtype using the FindNextComponent function, FindNextComponent returns a component identifier that identifies the component. Similarly, your application specifies a component identifier to the GetComponentInfo function to obtain information about a component.

When you open a connection to a component, the OpenDefaultComponent and OpenComponent functions return a component instance. The returned component instance identifies that specific instance of the component. If you open the same component again, the Component Manager returns a different component instance. So a component has a single component identifier and can have multiple component instances. To use a component function, your application specifies a component instance.

Although conceptually component identifiers and component instances serve different purposes, Component Manager routines (with the exception of DelegateComponentCall ) allow you to use component identifiers and component instances interchangeably. If you do this, you must always coerce the data type appropriately.

A component identifier is defined by the data type Component :

TYPE
    {component identifier}
    Component               = ^ComponentRecord;
    ComponentRecord         =
    RECORD
        data:   ARRAY[0..0] OF LongInt;
    END;

A component instance is defined by the data type ComponentInstance :

TYPE
    {component instance}
    ComponentInstance       = ^ComponentInstanceRecord;
    ComponentInstanceRecord =
    RECORD
        data:   ARRAY[0..0] OF LongInt;
    END;

© 1999 Apple Computer, Inc.

Previous | Chapter Top | Chapter Contents | Next